package com.cnap.db.entity;

import com.cnap.model.application.ApplicationLabel;
import com.cnap.model.application.DeployResourceInfo;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDateTime;

/**
 * 应用实体类
 *
 * @author xc
 **/
public class ApplicationPO {
    /**
     * id
     */
    private String id;
    /**
     * name
     */
    private String name;
    /**
     * size
     */
    private String size;
    /**
     * 类型 AI BIGDATA
     */
    private String category;
    /**
     * 二级分类
     */
    private String type;
    /**
     * 版本
     */
    private String version;
    /**
     * 用户名称
     */
    private String userName;
    /**
     * 更新时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
    /**
     * 描述
     */
    private String description;
    /**
     * 标签
     */
    private ApplicationLabel label;
    /**
     * 状态，0：未上传应用包，1：正常状态（已上传应用包），2：已拆解，未完全部署，3：已部署
     */
    private int status;

    /**
     * 部署资源池信息
     */
    private DeployResourceInfo deployResourceInfo;

    /**
     * get
     *
     * @return DeployResourceInfo
     */
    public DeployResourceInfo getDeployResourceInfo() {
        return deployResourceInfo;
    }

    /**
     * set
     *
     * @param deployResourceInfo deployResourceInfo
     */
    public void setDeployResourceInfo(DeployResourceInfo deployResourceInfo) {
        this.deployResourceInfo = deployResourceInfo;
    }

    /**
     * get
     *
     * @return Id
     */
    public String getId() {
        return id;
    }

    /**
     * set
     *
     * @param id id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * get
     *
     * @return Name
     */
    public String getName() {
        return name;
    }

    /**
     * set
     *
     * @param name name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * get
     *
     * @return Size
     */
    public String getSize() {
        return size;
    }

    /**
     * set
     *
     * @param size size
     */
    public void setSize(String size) {
        this.size = size;
    }

    /**
     * get
     *
     * @return Category
     */
    public String getCategory() {
        return category;
    }

    /**
     * set
     *
     * @param category category
     */
    public void setCategory(String category) {
        this.category = category;
    }

    /**
     * get
     *
     * @return Type
     */
    public String getType() {
        return type;
    }

    /**
     * set
     *
     * @param type type
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * get
     *
     * @return Version
     */
    public String getVersion() {
        return version;
    }

    /**
     * set
     *
     * @param version version
     */
    public void setVersion(String version) {
        this.version = version;
    }

    /**
     * get
     *
     * @return UserName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * set
     *
     * @param userName userName
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * get
     *
     * @return UpdateTime
     */
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * set
     *
     * @param updateTime updateTime
     */
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * get
     *
     * @return Description
     */
    public String getDescription() {
        return description;
    }

    /**
     * set
     *
     * @param description description
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * get
     *
     * @return Label
     */
    public ApplicationLabel getLabel() {
        return label;
    }

    /**
     * set
     *
     * @param label label
     */
    public void setLabel(ApplicationLabel label) {
        this.label = label;
    }

    /**
     * get
     *
     * @return Status
     */
    public int getStatus() {
        return status;
    }

    /**
     * set
     *
     * @param status status
     */
    public void setStatus(int status) {
        this.status = status;
    }
}
